package procsim;

class PaintInstructionDecode extends PaintTab {
    public PaintInstructionDecode(Paint parent){
        super(parent);
        // Coordinates
        Design.IR31.addCoords(this, Design.IDOR1.getUpper2Coords(30));
        Design.IR30.addCoords(this, Design.IDOR1.getLower2Coords(30));
        Design.IR31.addCoords(this, Design.IDAND1.getUpper2CoordsInv(30));
        Design.IR30.addCoords(this, Design.IDAND1.getLower2Coords(30));
        Design.IDOR1out.addCoords(this, Design.IDOR1.getResCoords(18));
        Design.IDOR1out.addCoords(this, Design.IDDC1.getEnableCoords(28));
        Design.IDAND1out.addCoords(this, Design.IDAND1.getResCoords(19));
        Design.IDAND1out.addCoords(this, Design.IDDC2.getEnableCoords(28));
        Design.IR24.addCoords(this, 30, 95, 60, 95);
        Design.IR25.addCoords(this, 30, 124, 60, 124);
        Design.IR26.addCoords(this, 30, 155, 60, 155);
        Design.IR24.addCoords(this, 230, 100, 260, 100);
        Design.IR25.addCoords(this, 230, 150, 260, 150);
        Design.IR19.addCoords(this, 30, 365, 60, 365);
        Design.IR20.addCoords(this, 30, 394, 60, 394);
        Design.IR21.addCoords(this, 30, 425, 60, 425);
        Design.IR24.addCoords(this, 230, 365, 260, 365);
        Design.IR25.addCoords(this, 230, 394, 260, 394);
        Design.IR26.addCoords(this, 230, 425, 260, 425);
        Design.NOP.addCoords(this, 160, 69, 190, 69);
        Design.RTS.addCoords(this, 160, 85, 190, 85);
        Design.RTI.addCoords(this, 160, 101, 190, 101);
        Design.INTE.addCoords(this, 160, 117, 190, 117);
        Design.INTD.addCoords(this, 160, 133, 190, 133);
        Design.TRPE.addCoords(this, 160, 149, 190, 149);
        Design.TRPD.addCoords(this, 160, 165, 190, 165);
        Design.HALT.addCoords(this, 160, 181, 190, 181);
        Design.IR29.addCoords(this, Design.IDAND2.getUpper2CoordsInv(60));
        Design.IR29.addCoords(this, 440, 34, 440, 156);
        Design.IDDC2out0.addCoords(this, Design.IDAND3.getLower2Coords(100));
        Design.IDDC2out0.addCoords(this, 420, 81, 420, 49);
        Design.IDDC2out0.addCoords(this, Design.IDAND2.getLower2Coords(40));
        Design.JMP.addCoords(this, Design.IDAND2.getResCoords(30));
        Design.INT.addCoords(this, Design.IDAND3.getResCoords(30));
        Design.JSR.addCoords(this, Design.IDAND4.getResCoords(30));
        Design.BNZ.addCoords(this, Design.IDAND5.getResCoords(30));
        Design.IR29.addCoords(this, Design.IDAND3.getUpper2Coords(20));
        Design.IR29.addCoords(this, Design.IDAND4.getLower2CoordsInv(20));
        Design.IR29.addCoords(this, Design.IDAND5.getLower2Coords(20));
        Design.IDDC2out1.addCoords(this, Design.IDAND4.getUpper2Coords(100));
        Design.IDDC2out1.addCoords(this, 420, 110, 420, 141);
        Design.IDDC2out1.addCoords(this, Design.IDAND5.getUpper2Coords(40));
        Design.IDDC2out2.addCoords(this, 360, 140, 370, 140);
        Design.IDDC2out2.addCoords(this, 370, 140, 370, 148);
        Design.IDDC2out2.addCoords(this, Design.IDOR2.getUpper2Coords(15));
        Design.IDDC2out3.addCoords(this, 360, 170, 370, 170);
        Design.IDDC2out3.addCoords(this, 370, 170, 370, 163);
        Design.IDDC2out3.addCoords(this, Design.IDOR2.getLower2Coords(15));
        Design.IDOR2out.addCoords(this, Design.IDOR2.getResCoords(10));
        Design.IDOR2out.addCoords(this, 422, 155, 422, 180);
        Design.IDOR2out.addCoords(this, 422, 180, 720, 180);
        Design.IR30.addCoords(this, 35, 229, 60, 229);
        Design.IR29.addCoords(this, 35, 240, 60, 240);
        Design.IR28.addCoords(this, 35, 251, 60, 251);
        Design.IR27.addCoords(this, 35, 262, 64, 262);
        Design.IR26.addCoords(this, 35, 273, 60, 273);
        Design.IR25.addCoords(this, 35, 284, 60, 284);
        Design.IR24.addCoords(this, 35, 295, 60, 295);
        Design.IDOR3out.addCoords(this, Design.IDOR3.getResCoords(15));
        Design.IDOR3out.addCoords(this, 102, 262, 102, 210);
        Design.IDOR3out.addCoords(this, 102, 210, 370, 210);
        Design.IDOR3out.addCoords(this, 270, 210, 270, 257);
        Design.IDOR3out.addCoords(this, Design.IDAND8.getUpper3Coords(15));
        Design.IDOR3out.addCoords(this, Design.IDOR5.getUpper3Coords(30));
        Design.IDOR3out.addCoords(this, 380, 210, 380, 252);
        Design.IDOR3out.addCoords(this, Design.IDAND9.getUpper3CoordsInv(20));
        Design.IR30.addCoords(this, 115, 229, 140, 229);
        Design.IR29.addCoords(this, 115, 240, 140, 240);
        Design.IR28.addCoords(this, 115, 251, 140, 251);
        Design.IR27.addCoords(this, 115, 262, 140, 262);
        Design.IR26.addCoords(this, 115, 273, 140, 273);
        Design.IR25.addCoords(this, 115, 284, 140, 284);
        Design.IR24.addCoords(this, 115, 295, 140, 295);
        Design.IDAND6out.addCoords(this, Design.IDAND6.getResCoords(35));
        Design.IDAND6out.addCoords(this, 190, 262, 190, 250);
        Design.IDAND6out.addCoords(this, 190, 250, 260, 250);
        Design.IDAND6out.addCoords(this, 260, 250, 260, 272);
        Design.IDAND6out.addCoords(this, Design.IDAND8.getMiddle3CoordsInv(25));
        Design.IR31.addCoords(this, Design.IDAND8.getLower3Coords(30));
        Design.IR31.addCoords(this, Design.IDAND7.getLower2Coords(30));
        Design.IDAND7out.addCoords(this, Design.IDAND7.getResCoords(10));
        Design.IDAND7out.addCoords(this, 245, 270, 245, 315);
        Design.IDAND7out.addCoords(this, 245, 315, 110, 315);
        Design.IDAND7out.addCoords(this, Design.IDDC3.getEnableCoords(15));
        Design.IDAND8out.addCoords(this, Design.IDAND8.getResCoords(10));
        Design.IDAND8out.addCoords(this, 325, 272, 325, 315);
        Design.IDAND8out.addCoords(this, 325, 315, 310, 315);
        Design.IDAND8out.addCoords(this, Design.IDDC4.getEnableCoords(15));
        Design.IR19.addCoords(this, Design.IDOR4.getUpper3Coords(30));
        Design.IR20.addCoords(this, Design.IDOR4.getMiddle3Coords(30));
        Design.IR21.addCoords(this, Design.IDOR4.getLower3Coords(30));
        Design.IDOR4out.addCoords(this, Design.IDOR4.getResCoords(13));
        Design.IDOR4out.addCoords(this, 370, 241, 370, 282);
        Design.IDOR4out.addCoords(this, Design.IDAND9.getLower3Coords(30));
        Design.IDOR4out.addCoords(this, Design.IDOR5.getLower3Coords(30));
        Design.L1.addCoords(this, Design.IDOR5.getMiddle3Coords(15));
        Design.ASR.addCoords(this, Design.IDOR5.getResCoords(30));
        Design.L1.addCoords(this, Design.IDAND9.getMiddle3CoordsInv(20));
        Design.IDAND9out.addCoords(this, Design.IDAND9.getResCoords(270));
        Design.PUSH.addCoords(this, 160, 339, 190, 339);
        Design.POP.addCoords(this, 160, 355, 190, 355);
        Design.INC.addCoords(this, 160, 371, 190, 371);
        Design.DEC.addCoords(this, 160, 387, 190, 387);
        Design.JMPIND.addCoords(this, 160, 403, 190, 403);
        Design.IDDC3out5.addCoords(this, 160, 419, 180, 419);
        Design.IDDC3out6.addCoords(this, 160, 435, 184, 435);
        Design.IDDC3out7.addCoords(this, 160, 451, 180, 451);
        Design.IDDC4out0.addCoords(this, 360, 339, 370, 339);
        Design.MOVS.addCoords(this, 360, 355, 390, 355);
        Design.MOVD.addCoords(this, 360, 371, 390, 371);
        Design.ADD.addCoords(this, 360, 387, 390, 387);
        Design.AND.addCoords(this, 360, 403, 390, 403);
        Design.IDDC4out5.addCoords(this, 360, 419, 380, 419);
        Design.IDDC4out6.addCoords(this, 360, 435, 384, 435);
        Design.IDDC4out7.addCoords(this, 360, 451, 380, 451);
        Design.IDOR6out.addCoords(this, Design.IDOR6.getResCoords(10));
        Design.IDOR7out.addCoords(this, Design.IDOR7.getResCoords(303));
        Design.ASR.addCoords(this, 560, 49, 600, 49);
        Design.POP.addCoords(this, 560, 63, 600, 63);
        Design.INC.addCoords(this, 560, 75, 603, 75);
        Design.DEC.addCoords(this, 560, 87, 604, 87);
        Design.JMPIND.addCoords(this, 560, 99, 600, 99);
        Design.MOVD.addCoords(this, 560, 111, 600, 111);
        Design.IDOR12out.addCoords(this, Design.IDOR12.getResCoords(33));
        Design.imm.addCoords(this, Design.IDAND14.getUpper2Coords(30));
        Design.JMPIND.addCoords(this, Design.IDAND15.getLower2Coords(40));
        Design.regdir.addCoords(this, Design.IDAND15.getUpper2Coords(30));
        Design.IDAND14out.addCoords(this, Design.IDAND14.getResCoords(20));
        Design.IDAND14out.addCoords(this, 710, 74, 710, 82);
        Design.IDAND14out.addCoords(this, Design.IDOR13.getUpper2Coords(20));
        Design.IDAND15out.addCoords(this, Design.IDAND15.getResCoords(20));
        Design.IDAND15out.addCoords(this, 710, 104, 710, 97);
        Design.IDAND15out.addCoords(this, Design.IDOR13.getLower2Coords(20));
        Design.grADR.addCoords(this, Design.IDOR13.getResCoords(30));
        Design.IR27.addCoords(this, Design.IDOR8.getUpper3Coords(30));
        Design.IR28.addCoords(this, Design.IDOR8.getMiddle3Coords(30));
        Design.IR29.addCoords(this, Design.IDOR8.getLower3Coords(30));
        Design.IR26.addCoords(this, Design.IDOR9.getUpper3Coords(30));
        Design.IR27.addCoords(this, Design.IDOR9.getMiddle3Coords(30));
        Design.IR28.addCoords(this, Design.IDOR9.getLower3Coords(30));
        Design.IR27.addCoords(this, 560, 371, 590, 371);
        Design.IR28.addCoords(this, 560, 385, 593, 385);
        Design.IR29.addCoords(this, 560, 399, 593, 399);
        Design.IR30.addCoords(this, 560, 413, 590, 413);
        Design.IR27.addCoords(this, 470, 371, 500, 371);
        Design.IR28.addCoords(this, 470, 385, 500, 385);
        Design.IR29.addCoords(this, 470, 399, 500, 399);
        Design.IR30.addCoords(this, 470, 413, 500, 413);
        Design.IDAND12out.addCoords(this, Design.IDAND12.getResCoords(10));
        Design.IDAND12out.addCoords(this, 545, 392, 545, 425);
        Design.IDAND12out.addCoords(this, 545, 425, 630, 425);
        Design.IDAND12out.addCoords(this, 630, 425, 630, 408);
        Design.IDAND12out.addCoords(this, Design.IDAND13.getLower3Coords(20));
        Design.IDOR8out.addCoords(this, Design.IDOR8.getResCoords(33));
        Design.IDOR9out.addCoords(this, Design.IDOR9.getResCoords(33));
        Design.IDOR10out.addCoords(this, Design.IDOR10.getResCoords(33));
        Design.IR31.addCoords(this, Design.IDAND10.getUpper2CoordsInv(30));
        Design.IR31.addCoords(this, Design.IDAND11.getUpper3CoordsInv(30));
        Design.L1.addCoords(this, Design.IDAND11.getMiddle3CoordsInv(30));
        Design.IR31.addCoords(this, Design.IDAND13.getUpper3Coords(30));
        Design.IDOR2out.addCoords(this, 720, 180, 720, 277);
        Design.IDOR2out.addCoords(this, 720, 277, 730, 277);
        Design.IDAND10out.addCoords(this, Design.IDAND10.getResCoords(30));
        Design.IDAND10out.addCoords(this, 710, 222, 710, 289);
        Design.IDAND10out.addCoords(this, 710, 289, 730, 289);
        Design.IDAND9out.addCoords(this, 700, 267, 700, 301);
        Design.IDAND9out.addCoords(this, 700, 301, 730, 301);
        Design.IDAND11out.addCoords(this, Design.IDAND11.getResCoords(54));
        Design.IDAND13out.addCoords(this, Design.IDAND13.getResCoords(20));
        Design.IDAND13out.addCoords(this, 700, 392, 700, 323);
        Design.IDAND13out.addCoords(this, 700, 323, 731, 323);
        Design.IDOR7out.addCoords(this, 710, 434, 710, 335);
        Design.IDOR7out.addCoords(this, 710, 335, 730, 335);
        Design.IDOR6out.addCoords(this, 217, 434, 217, 470);
        Design.IDOR6out.addCoords(this, 217, 470, 720, 470);
        Design.IDOR6out.addCoords(this, 720, 470, 720, 347);
        Design.IDOR6out.addCoords(this, 720, 347, 730, 347);
        Design.grOPR.addCoords(this, Design.IDOR11.getResCoords(30));

        // Collections
        elements.add(Design.IDInv1);
        elements.add(Design.IDAND1);
        elements.add(Design.IDOR1);
        elements.add(Design.IDDC1);
        elements.add(Design.IDDC2);
        elements.add(Design.IDInv2);
        elements.add(Design.IDInv3);
        elements.add(Design.IDInv4);
        elements.add(Design.IDInv5);
        elements.add(Design.IDInv6);
        elements.add(Design.IDInv7);
        elements.add(Design.IDInv8);
        elements.add(Design.IDInv9);
        elements.add(Design.IDDC3);
        elements.add(Design.IDDC4);
        elements.add(Design.IDAND2);
        elements.add(Design.IDAND3);
        elements.add(Design.IDAND4);
        elements.add(Design.IDAND5);
        elements.add(Design.IDAND6);
        elements.add(Design.IDAND7);
        elements.add(Design.IDAND8);
        elements.add(Design.IDAND9);
        elements.add(Design.IDAND10);
        elements.add(Design.IDAND11);
        elements.add(Design.IDAND12);
        elements.add(Design.IDAND13);
        elements.add(Design.IDAND14);
        elements.add(Design.IDAND15);
        elements.add(Design.IDOR2);
        elements.add(Design.IDOR3);
        elements.add(Design.IDOR4);
        elements.add(Design.IDOR5);
        elements.add(Design.IDOR6);
        elements.add(Design.IDOR7);
        elements.add(Design.IDOR8);
        elements.add(Design.IDOR9);
        elements.add(Design.IDOR10);
        elements.add(Design.IDOR11);
        elements.add(Design.IDOR12);
        elements.add(Design.IDOR13);

        lines.add(Design.regdir);
        lines.add(Design.imm);
        lines.add(Design.IDDC1out);
        lines.add(Design.IDDC2out);
        lines.add(Design.IDDC3out);
        lines.add(Design.IDDC4out);
        lines.add(Design.IR31);
        lines.add(Design.IR30);
        lines.add(Design.IR29);
        lines.add(Design.IR28);
        lines.add(Design.IR27);
        lines.add(Design.IR26);
        lines.add(Design.IR25);
        lines.add(Design.IR24);
        lines.add(Design.IR21);
        lines.add(Design.IR20);
        lines.add(Design.IR19);
        lines.add(Design.NOP);
        lines.add(Design.RTS);
        lines.add(Design.RTI);
        lines.add(Design.INTE);
        lines.add(Design.INTD);
        lines.add(Design.TRPE);
        lines.add(Design.TRPD);
        lines.add(Design.HALT);
        lines.add(Design.JMP);
        lines.add(Design.INT);
        lines.add(Design.JSR);
        lines.add(Design.BNZ);
        lines.add(Design.ASR);
        lines.add(Design.PUSH);
        lines.add(Design.POP);
        lines.add(Design.INC);
        lines.add(Design.DEC);
        lines.add(Design.JMPIND);
        lines.add(Design.MOVS);
        lines.add(Design.MOVD);
        lines.add(Design.ADD);
        lines.add(Design.AND);
        lines.add(Design.IDDC2out0);
        lines.add(Design.IDDC2out1);
        lines.add(Design.IDDC2out2);
        lines.add(Design.IDDC2out3);
        lines.add(Design.IDDC3out5);
        lines.add(Design.IDDC3out6);
        lines.add(Design.IDDC3out7);
        lines.add(Design.IDDC4out0);
        lines.add(Design.IDDC4out5);
        lines.add(Design.IDDC4out6);
        lines.add(Design.IDDC4out7);
        lines.add(Design.IDAND1out);
        lines.add(Design.IDAND6out);
        lines.add(Design.IDAND7out);
        lines.add(Design.IDAND8out);
        lines.add(Design.IDAND9out);
        lines.add(Design.IDAND10out);
        lines.add(Design.IDAND11out);
        lines.add(Design.IDAND12out);
        lines.add(Design.IDAND13out);
        lines.add(Design.IDAND14out);
        lines.add(Design.IDAND15out);
        lines.add(Design.IDOR1out);
        lines.add(Design.IDOR2out);
        lines.add(Design.IDOR3out);
        lines.add(Design.IDOR4out);
        lines.add(Design.IDOR6out);
        lines.add(Design.IDOR7out);
        lines.add(Design.IDOR8out);
        lines.add(Design.IDOR9out);
        lines.add(Design.IDOR10out);
        lines.add(Design.IDOR12out);
        lines.add(Design.grADR);
        lines.add(Design.grOPR);
        lines.add(Design.L1);
    }
}
